package com.yanggu.flink.datastream_api.partition

import org.apache.flink.streaming.api.scala._

/**
 * 可以看到, 即使下游的print算子的并行度为2, 但是调用了global方法之后, 所有的数据都会发往下游的第一个算子
 * 可以理解为强行将下游算子的并行度调整为1
 */
//global:1> 1
//global:1> 2
//global:1> 3
//global:1> 4
object GlobalDemo {

  def main(args: Array[String]): Unit = {
    // 创建执行环境
    val env = StreamExecutionEnvironment.getExecutionEnvironment
    env.setParallelism(1)

    val stream = env.fromElements(1, 2, 3, 4)

    stream.global
      .print("global").setParallelism(2)

    env.execute()
  }

}
